Mobile computing systems are used daily, in a wide range of industries, with applications such as route accounting, pre-sales, field services, parcel delivery, medical services, retail, warehousing, public safety and public services. To tailor a mobile computing device used in a mobile computing system to a particular industry application, the mobile computing device is typically provided with one or more business applications that configure the mobile computing device for that particular industry application use. For example, a mobile computing device such as a scanning device, may be provided with a business application for managing inventory. This business application will generally set the settings of the scanner to the settings required to satisfy the communication needs of the business application, such as sending and receiving data to and from the business application. With the scanner so configured, the business application will then be able to recognize and store inventory data captured by the scanner into data files and to manipulate and communicate that data to allow the user to manage the inventory at, for example, a warehouse.
Each of these business applications is generally designed to meet the special needs of that industry's mobile workforce, and as a result, these applications have different functionality which leads to different data structures, data-flow, work-flow, user interfaces, and supported peripherals.
Conventional business applications may manage communications with the network directly in which case the business application will handle details of the communication itself. For example, each business application will typically open a network connection with a host server, such as a web server, and interact directly with the host system through whatever interface it exposes to address commands to the server, receive results, etc. Alternatively, business applications may use an application program interface (API) to assist in that management that allows them to access the network using a set of predefined functions that are part of the API. A business application that uses the API to handle communications over the network will typically manage details of the network communication itself, using the API. For example, the API will assist the business application in opening a network connection with a host server, such as a web server, and interact directly with the host system through whatever interface it exposes to, address commands to the server, receive results, etc. In either case, all of this requires that the designer of business applications have a thorough understanding of all of the details of the network, network protocols, servers, etc., and, in the case of the business application that uses the API, have a thorough understanding of the API as well. This can be a considerable burden for the developers of business applications with typical communication needs.
The requirement that a business application typically manages details of the network communication itself, alone or using the API, makes it difficult to scale the mobile computing system since diverse business applications have different network communication requirements. This requirement that a business application typically manages details of the network communication itself, alone or using the API, also leads to segmentation of the business applications at the network communication level; making it harder for the administrator to manage the rules that govern the network communications. It is harder to manage communications because typically each mobile application would independently, only for its own use, establish a communications session, through any network that was available, to any host system and the administrator has no way to monitor or manage what mobile applications are communicating from the device, with what server side resources, what data is being requested and submitted between the device/application and host system, who was the device user associated with the data exchange, how long the session took, through what network its being executed, etc. It also makes the network less open and less extendible to meet the specific needs of each organization since some business applications may not be configurable for use with or it may be difficult to configure the business application for use with the network which means that a business application may not get used with a network. The requirement that a business application typically manages details of the network communication itself, alone or using the API, also means that each business application will have a separate communication link with the network which creates more channels of communication with the network. This means that there are more communication channels that the network needs to manage. It also means that there are more channels of communication that are open to a security breach.
There is a need for a mobile computing system in which any number of mobile business applications running on the same device (and running on any number of devices and device types) can exchange data in parallel with any number of host system resources. There is a need for a mobile computing system in which the details of the network communication between a business application residing on a mobile computing device and a network or host system are made more uniform. There is a need for a unified approach to implementing connectivity between mobile applications and host systems that improves mobile communication flexibility and reliability, enhances data transmission security, enables better mobile device management and mobile application support, enables extensive control over mobile data exchange transactions, enables mobile computing devices to be more quickly and efficiently used on the network, provides an integrated and yet highly scalable solution, and enables comprehensive monitoring of all communications and data processing. This disclosure addresses those needs.